home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c3.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  56.8 KB  |  2,105 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. void rT40rs_push_argument(T40 *C,T0* a1,int a2,T0 * a3){
  11. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  12. /*)*/rT7extend((T7*)oRBC40tmp_string,'a');
  13. rT2append_in(a2,oRBC40tmp_string);
  14. rT40rs_push(C,a1,oRBC40tmp_string,a3);
  15. }
  16. void rT40rs_push(T40 *C,T0* a1,T0* a2,T0 * a3){
  17. T0* _str=NULL;
  18. rT40put_string(C,(T0 *)ms1372);
  19. /*IF*/if (XrT58is_reference(a3)) {
  20. rT40put_string(C,(T0 *)ms1373);
  21. }
  22. else {
  23. /*IF*/if (XrT58fast_mapping_c(a3)) {
  24. _str=XrT58written_mark(a3);
  25. rT40put_character(C,rT7item((T7*)_str,1));
  26. rT40put_character(C,rT7item((T7*)_str,2));
  27. rT40put_character(C,rT7item((T7*)_str,3));
  28. }
  29.  else if (XrT58is_bit(a3)) {
  30. rT40put_string(C,(T0 *)ms1374);
  31. }
  32. else {
  33. rT40put_string(C,(T0 *)ms1375);
  34. }
  35. /*FI*/rT40put_character(C,'\50');
  36. }
  37. /*FI*/rT40put_character(C,'\46');
  38. rT40put_string(C,a2);
  39. rT40put_character(C,'\54');
  40. /*IF*/if (((T0 *)a1)==((T0 *)(T0 *)ms205)) {
  41. rT40put_string(C,(T0 *)ms205);
  42. }
  43.  else if (((T0 *)a1)==((T0 *)(T0 *)ms293)) {
  44. rT40put_string(C,(T0 *)ms293);
  45. }
  46. else {
  47. rT40put_string_c(C,a1);
  48. }
  49. /*FI*/rT40put_string(C,(T0 *)ms1376);
  50. }
  51. void rT40rs_push_current(T40 *C,T0 * a1){
  52. rT40rs_push(C,(T0 *)ms205,(T0 *)ms1377,a1);
  53. }
  54. void rT40rs_push_position(T40 *C,char a1,T0 * a2){
  55. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  56. rT40put_string(C,(T0 *)ms778);
  57. rT40put_character(C,a1);
  58. rT40put_character(C,'\54');
  59. rT40put_position(C,a2);
  60. rT40put_character(C,'\51');
  61. /*IF*/if ((a1)!=('2')) {
  62. rT40put_string(C,(T0 *)ms780);
  63. }
  64. /*FI*/}
  65. /*FI*/}
  66. void rT40error_void_or_bad_type(T40 *C,T0 * a1){
  67. /*UT*/(T45*)oRBC27eh;
  68. rT45add_position(XrT68start_position(a1));
  69. /*UT*/(T45*)oRBC27eh;
  70. rT45append((T0 *)ms1171);
  71. rT40rescue_evobt(XrT58run_type(XrT68result_type(a1)));
  72. /*IF*/if (rT44boost((T44*)oRBC27eiffel_run_control)) {
  73. rT40put_string(C,(T0 *)ms1174);
  74. }
  75. else {
  76. rT40put_string(C,(T0 *)ms1175);
  77. XrT68compile_to_c(a1);
  78. rT40put_character(C,'\54');
  79. rT40put_position(C,XrT68start_position(a1));
  80. rT40put_character(C,'\51');
  81. }
  82. /*FI*/}
  83. void rT40write_make_file(T40 *C){
  84. int _i=0;
  85. XrT34disconnect((C)->_out_h);
  86. XrT34disconnect((C)->_out_c);
  87. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1081);
  88. rT38put_string((T38*)oRBC1std_output,rT40path_make(C));
  89. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1097);
  90. C->_out_make=rT40open_write(C,rT40path_make(C));
  91. _i=(C)->_split_count;
  92. while (!((_i)==(0))) {
  93. rT40tmp_string_gcc(C);
  94. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1101);
  95. rT7append((T7*)oRBC40tmp_string,rT40path_h(C));
  96. rT7remove_last((T7*)oRBC40tmp_string,2);
  97. rT2append_in(_i,oRBC40tmp_string);
  98. rT7append((T7*)oRBC40tmp_string,(T0 *)ms532);
  99. rT40echo_make(C);
  100. _i=(_i)-(1);
  101. }
  102. rT40tmp_string_gcc(C);
  103. rT40tmp_string_output(C);
  104. _i=1;
  105. while (!((_i)>((C)->_split_count))) {
  106. rT7append((T7*)oRBC40tmp_string,rT40path_h(C));
  107. rT7remove_last((T7*)oRBC40tmp_string,2);
  108. rT2append_in(_i,oRBC40tmp_string);
  109. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1103);
  110. rT7extend((T7*)oRBC40tmp_string,'\40');
  111. _i=(_i)+(1);
  112. }
  113. rT40tmp_string_object_library(C);
  114. rT40echo_make(C);
  115. /*IF*/if ((rT40directory_separator(C))!=('\57')) {
  116. C->_no_strip=1;
  117. }
  118. /*FI*//*IF*/if (!((C)->_no_strip)) {
  119. rT40print_strip(C);
  120. }
  121. /*FI*/XrT34disconnect((C)->_out_make);
  122. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1107);
  123. }
  124. void rT40put_string(T40 *C,T0* a1){
  125. XrT34put_string((C)->_current_out,a1);
  126. }
  127. void rT40put_semicolon(T40 *C){
  128. XrT34put_string((C)->_current_out,(T0 *)ms802);
  129. }
  130. void rT40put_string_c(T40 *C,T0* a1){
  131. int _i=0;
  132. rT40put_character(C,'\42');
  133. _i=1;
  134. while (!((_i)>(((T7*)a1)->_count))) {
  135. rT40put_in_c_string(C,rT7item((T7*)a1,_i));
  136. _i=(_i)+(1);
  137. }
  138. rT40put_character(C,'\42');
  139. }
  140. void rT40put_target(T40 *C){
  141. int _ivt_flag=0;
  142. T0 * _rf=NULL;
  143. T0 * _tt=NULL;
  144. T0 * _target=NULL;
  145. {int iv1=rT55item((T55*)oRBC40stack_code,(C)->_top);
  146. if (1004 == iv1) goto l16;
  147. goto l17;
  148.  l16: ;
  149. _target=XrT81item(oRBC40stack_target,(C)->_top);
  150. _tt=XrT58run_type(XrT68result_type(_target));
  151. /*IF*/if (XrT68is_current(_target)) {
  152. XrT34put_character((C)->_out_c,'C');
  153. }
  154.  else if (XrT58fast_mapping_c(_tt)) {
  155. XrT68compile_to_c(_target);
  156. }
  157. else {
  158. _ivt_flag=rT40call_invariant_start(C,_tt);
  159. /*IF*/if (XrT58is_expanded(_tt)) {
  160. rT40put_character(C,'\46');
  161. XrT68compile_to_c(_target);
  162. /*IF*/if (_ivt_flag) {
  163. rT40call_invariant_end(C);
  164. }
  165. /*FI*/}
  166.  else if (_ivt_flag) {
  167. XrT34put_character((C)->_out_c,'\50');
  168. XrT58mapping_cast(_tt);
  169. XrT68compile_to_c(_target);
  170. XrT34put_character((C)->_out_c,'\51');
  171. rT40call_invariant_end(C);
  172. }
  173. else {
  174. XrT68compile_to_c(_target);
  175. }
  176. /*FI*/}
  177. /*FI*/goto l15;
  178.  l17: ;
  179. if (1007 == iv1) goto l18;
  180. goto l19;
  181.  l18: ;
  182. rT40put_character(C,'n');
  183. goto l15;
  184.  l19: ;
  185. if (1005 == iv1) goto l20;
  186. goto l21;
  187.  l20: ;
  188. _target=XrT81item(oRBC40stack_target,(C)->_top);
  189. _rf=XrT265item(oRBC40stack_rf,(C)->_top);
  190. _tt=XrT261current_type(_rf);
  191. /*IF*/if (rT44boost((T44*)oRBC27eiffel_run_control)) {
  192. XrT58mapping_cast(_tt);
  193. XrT68compile_to_c(_target);
  194. }
  195. else {
  196. _ivt_flag=rT40call_invariant_start(C,_tt);
  197. rT40check_id(C,_target,XrT261id(_rf));
  198. /*IF*/if (_ivt_flag) {
  199. rT40call_invariant_end(C);
  200. }
  201. /*FI*/}
  202. /*FI*/goto l15;
  203.  l21: ;
  204. if (1006 == iv1) goto l22;
  205. goto l23;
  206.  l22: ;
  207. _rf=XrT265item(oRBC40stack_rf,(C)->_top);
  208. /*UT*/(T269*)rT271item((T271*)oRBC40stack_switch,(C)->_top);
  209. rT269put_target(_rf);
  210. goto l15;
  211.  l23: ;
  212. if (1008 == iv1) goto l24;
  213. goto l25;
  214.  l24: ;
  215. rT40put_character(C,'\46');
  216. rT40put_local_name(C,rT41item((T41*)oRBC40stack_string,(C)->_top));
  217. goto l15;
  218.  l25: ;
  219. if (1009 == iv1) goto l26;
  220. goto l27;
  221.  l26: ;
  222. XrT34put_character((C)->_out_c,'\46');
  223. _target=XrT81item(oRBC40stack_target,(C)->_top);
  224. /*IF*/if (((int)_target)) {
  225. XrT68compile_to_c(_target);
  226. }
  227. else {
  228. XrT34put_string((C)->_out_c,rT41item((T41*)oRBC40stack_string,(C)->_top));
  229. }
  230. /*FI*/XrT34put_string((C)->_out_c,(T0 *)ms1170);
  231. XrT34put_string((C)->_out_c,XrT67to_string(XrT261name(XrT265item(oRBC40stack_rf,(C)->_top))));
  232. goto l15;
  233.  l27: ;
  234. if (1003 == iv1) goto l28;
  235. goto l29;
  236.  l28: ;
  237. _target=XrT81item(oRBC40stack_target,(C)->_top);
  238. rT40error_void_or_bad_type(C,_target);
  239. goto l15;
  240.  l29: ;
  241.  l15: ;
  242. }
  243. }
  244. void rT40print_strip(T40 *C){
  245. /*IF*/if ((((T0 *)(T0 *)ms1090)==((T0 *)rT40system_name(C)))||(((T0 *)(T0 *)ms1087)==((T0 *)rT40system_name(C)))) {
  246. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  247. /*)*//*IF*/if (((T0 *)(T0 *)ms1090)==((T0 *)rT40system_name(C))) {
  248. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1104);
  249. }
  250. else {
  251. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1105);
  252. }
  253. /*FI*//*IF*/if (!((C)->_output_name)) {
  254. rT7append((T7*)oRBC40tmp_string,(T0 *)ms1106);
  255. }
  256. else {
  257. rT7append((T7*)oRBC40tmp_string,(C)->_output_name);
  258. }
  259. /*FI*/rT40echo_make(C);
  260. }
  261. /*FI*/}
  262. void rT40print_included(T40 *C){
  263. int _i=0;
  264. /*IF*/if (((int)(C)->_included)) {
  265. rT38put_string((T38*)oRBC1std_output,(T0 *)ms853);
  266. _i=((T41*)(C)->_included)->_lower;
  267. while (!((_i)>(((T41*)(C)->_included)->_upper))) {
  268. rT38put_string((T38*)oRBC1std_output,rT41item((T41*)(C)->_included,_i));
  269. _i=(_i)+(1);
  270. /*IF*/if ((_i)<=(((T41*)(C)->_included)->_upper)) {
  271. rT38put_character((T38*)oRBC1std_output,'\54');
  272. }
  273. /*FI*/}
  274. rT38put_string((T38*)oRBC1std_output,(T0 *)ms854);
  275. }
  276. /*FI*/}
  277. void rT40print_count(/*C*/T0* a1,int a2){
  278. /*IF*/if ((a2)>(0)) {
  279. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1014);
  280. rT38put_string((T38*)oRBC1std_output,a1);
  281. /*IF*/if ((a2)>(1)) {
  282. rT38put_character((T38*)oRBC1std_output,'s');
  283. }
  284. /*FI*/rT38put_string((T38*)oRBC1std_output,(T0 *)ms1015);
  285. rT38put_integer((T38*)oRBC1std_output,a2);
  286. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1016);
  287. }
  288. else {
  289. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1017);
  290. rT38put_string((T38*)oRBC1std_output,a1);
  291. rT38put_string((T38*)oRBC1std_output,(T0 *)ms1018);
  292. }
  293. /*FI*/}
  294. T0*oRBC27system_list;
  295. int ofBC27system_name=0;
  296. T0*oRBC27system_name;
  297. T0* rT40system_name(T40 *C){
  298. T0* R=NULL;
  299. int _i=0;
  300. T0* _path=NULL;
  301. if (ofBC27system_name==0){
  302. ofBC27system_name=1;
  303. _path=rT40clone(C,rT40small_eiffel_directory(C));
  304. rT40add_directory(C,_path,(T0 *)ms1083);
  305. rT7append((T7*)_path,(T0 *)ms1084);
  306. /*IF*/if (!(rT40file_exists(C,_path))) {
  307. rT33put_string((T33*)oRBC1std_error,(T0 *)ms1085);
  308. rT33put_string((T33*)oRBC1std_error,_path);
  309. rT33put_string((T33*)oRBC1std_error,(T0 *)ms1086);
  310. rT40die_with_code(C,1);
  311. }
  312. /*FI*/rT40open_read(C,rT40tmp_file_read(),_path);
  313. rT39read_word((T39*)rT40tmp_file_read());
  314. R=oRBC39last_string;
  315. rT39disconnect((T39*)rT40tmp_file_read());
  316. _i=rT41index_of((T41*)oRBC27system_list,R);
  317. /*IF*/if ((_i)>(((T41*)oRBC27system_list)->_upper)) {
  318. rT33put_string((T33*)oRBC1std_error,(T0 *)ms1092);
  319. rT33put_string((T33*)oRBC1std_error,_path);
  320. rT33put_string((T33*)oRBC1std_error,(T0 *)ms1093);
  321. _i=1;
  322. while (!((_i)>(((T41*)oRBC27system_list)->_upper))) {
  323. rT33put_string((T33*)oRBC1std_error,rT41item((T41*)oRBC27system_list,_i));
  324. rT33put_character((T33*)oRBC1std_error,'\12');
  325. _i=(_i)+(1);
  326. }
  327. }
  328. else {
  329. R=rT41item((T41*)oRBC27system_list,_i);
  330. }
  331. /*FI*/oRBC27system_name=R;}
  332. return oRBC27system_name;}
  333. void rT40copy(T40 *C,T0 * a1){
  334. /*IF*//*AF*//*AE*/
  335. memcpy(C,a1,s[C->id]);
  336. /*FI*/}
  337. void rT40pop(T40 *C){
  338. C->_top=((C)->_top)-(1);
  339. }
  340. void rT40add_cecil(T40 *C,T0 * a1){
  341. /*IF*/if (!((C)->_cecil_list)) {
  342. C->_cecil_list=ma(265,0,1,a1);
  343. }
  344. else {
  345. /*IF*/if (XrT265fast_has((C)->_cecil_list,a1)) {
  346. }
  347. else {
  348. XrT265add_last((C)->_cecil_list,a1);
  349. }
  350. /*FI*/}
  351. /*FI*/}
  352. void rT40add_c_library(T40 *C,T0* a1){
  353. /*IF*/if (!((C)->_c_library_list)) {
  354. C->_c_library_list=ma(41,0,1,a1);
  355. }
  356. else {
  357. rT41add((T41*)(C)->_c_library_list,a1);
  358. }
  359. /*FI*/}
  360. void rT40add_c_compiler_option(T40 *C,T0* a1){
  361. /*IF*/if (!((C)->_c_compiler_options)) {
  362. {T7 *n=((T7*)new(7));
  363. rT7make(n,10);
  364. C->_c_compiler_options=(T0 *)n;}
  365. /*(IRF3*/(((T7*)(C)->_c_compiler_options)->_count)=(0);
  366. /*)*/}
  367. /*FI*/rT7append((T7*)(C)->_c_compiler_options,a1);
  368. rT7extend((T7*)(C)->_c_compiler_options,'\40');
  369. }
  370. void rT40add_c_object(T40 *C,T0* a1){
  371. /*IF*/if (!((C)->_c_object_list)) {
  372. C->_c_object_list=ma(41,0,1,a1);
  373. }
  374. else {
  375. rT41add((T41*)(C)->_c_object_list,a1);
  376. }
  377. /*FI*/}
  378. void rT40add_directory(T40 *C,T0* a1,T0* a2){
  379. rT7append((T7*)a1,a2);
  380. rT7extend((T7*)a1,rT40directory_separator(C));
  381. }
  382. void rT40add_first_include(T40 *C){
  383. rT40put_banner((C)->_out_c);
  384. XrT34put_string((C)->_out_c,(T0 *)ms535);
  385. XrT34put_string((C)->_out_c,rT40path_h(C));
  386. XrT34put_string((C)->_out_c,(T0 *)ms536);
  387. }
  388. void rT40cdef_id(T40 *C,T0* a1,int a2){
  389. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  390. /*)*/rT7append((T7*)oRBC40tmp_string,(T0 *)ms564);
  391. rT7append((T7*)oRBC40tmp_string,a1);
  392. rT7append((T7*)oRBC40tmp_string,(T0 *)ms565);
  393. rT2append_in(a2,oRBC40tmp_string);
  394. rT7extend((T7*)oRBC40tmp_string,'\12');
  395. XrT34put_string((C)->_out_h,oRBC40tmp_string);
  396. }
  397. void rT40cdef_t(T40 *C,T0* a1,int a2){
  398. /*(IRF3*/(((T7*)oRBC40tmp_string)->_count)=(0);
  399. /*)*/rT7append((T7*)oRBC40tmp_string,(T0 *)ms561);
  400. rT7append((T7*)oRBC40tmp_string,a1);
  401. rT7append((T7*)oRBC40tmp_string,(T0 *)ms562);
  402. rT2append_in(a2,oRBC40tmp_string);
  403. rT7extend((T7*)oRBC40tmp_string,'\12');
  404. XrT34put_string((C)->_out_h,oRBC40tmp_string);
  405. }
  406. int rT40add_manifest_string(T40 *C,T0 * a1){
  407. int R=0;
  408. /*IF*/if (!((C)->_ms_list)) {
  409. C->_ms_list=ma(151,0,1,a1);
  410. }
  411. else {
  412. rT151add_last((T151*)(C)->_ms_list,a1);
  413. }
  414. /*FI*/R=((T151*)(C)->_ms_list)->_upper;
  415. return R;
  416. }
  417. void rT40call_invariant_end(T40 *C){
  418. XrT34put_character((C)->_out_c,'\51');
  419. }
  420. int rT40call_invariant_start(T40 *C,T0 * a1){
  421. int R=0;
  422. T0 * _rc=NULL;
  423. _rc=XrT58run_class(XrT58run_type(a1));
  424. /*IF*/if (((rT44invariant_check((T44*)oRBC27eiffel_run_control))&&(((T260*)_rc)->_at_run_time))&&(((int)((T260*)_rc)->_invariant_assertion))) {
  425. XrT34put_string((C)->_out_c,(T0 *)ms1164);
  426. XrT34put_integer((C)->_out_c,((T260*)_rc)->_id);
  427. XrT34put_character((C)->_out_c,'\50');
  428. R=1;
  429. }
  430. /*FI*/return R;
  431. }
  432. int ofBC27make_suffix=0;
  433. T0*oRBC27make_suffix;
  434. T0* rT40make_suffix(T40 *C){
  435. T0* R=NULL;
  436. if (ofBC27make_suffix==0){
  437. ofBC27make_suffix=1;
  438. /*IF*/if (((T0 *)(T0 *)ms1082)==((T0 *)rT40system_name(C))) {
  439. R=(T0 *)ms1094;
  440. }
  441.  else if (((T0 *)(T0 *)ms1090)==((T0 *)rT40system_name(C))) {
  442. R=(T0 *)ms1095;
  443. }
  444. else {
  445. R=(T0 *)ms1096;
  446. }
  447. /*FI*/oRBC27make_suffix=R;}
  448. return oRBC27make_suffix;}
  449. void rT40check_id(T40 *C,T0 * a1,int a2){
  450. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  451. rT40put_string(C,(T0 *)ms1165);
  452. rT40put_integer(C,a2);
  453. rT40put_string(C,(T0 *)ms1166);
  454. rT40put_integer(C,a2);
  455. rT40put_character(C,'\54');
  456. XrT68compile_to_c(a1);
  457. rT40put_character(C,'\54');
  458. rT40put_position(C,XrT68start_position(a1));
  459. rT40put_string(C,(T0 *)ms1167);
  460. C->_check_id_count=((C)->_check_id_count)+(1);
  461. }
  462. else {
  463. XrT68compile_to_c(a1);
  464. C->_direct_call_count=((C)->_direct_call_count)+(1);
  465. }
  466. /*FI*/}
  467. void rT40echo_make(T40 *C){
  468. XrT34put_string((C)->_out_make,oRBC40tmp_string);
  469. XrT34put_character((C)->_out_make,'\12');
  470. }
  471. void rT40check_assertion(T40 *C,T0 * a1){
  472. int _static=0;
  473. _static=XrT68is_static(a1);
  474. /*IF*/if ((!(_static))||((XrT68static_value(a1))==(0))) {
  475. rT40rs_push_position(C,'4',XrT68start_position(a1));
  476. rT40put_string(C,(T0 *)ms781);
  477. rT40put_string(C,(C)->_check_assertion_mode);
  478. rT40put_character(C,'\50');
  479. /*IF*/if (_static) {
  480. C->_static_expression_count=((C)->_static_expression_count)+(1);
  481. rT40put_character(C,'0');
  482. }
  483. else {
  484. XrT68compile_to_c(a1);
  485. }
  486. /*FI*/rT40put_string(C,(T0 *)ms782);
  487. }
  488. /*FI*/}
  489. int rT40file_exists(T40 *C,T0* a1){
  490. int R=0;
  491. rT7extend((T7*)a1,'\0');
  492. {FILE *f=fopen(((T7 *)a1)->_storage,"r");
  493. R=(f != NULL);
  494. fclose(f);}
  495. rT7remove_last((T7*)a1,1);
  496. return R;
  497. }
  498. T0*oRBC27eiffel_run_control;
  499. T0* rT159to_key(T159 *C){
  500. T0* R=NULL;
  501. R=(C)->_to_string;
  502. return R;
  503. }
  504. void rT159copy(T159 *C,T0 * a1){
  505. /*IF*//*AF*//*AE*/
  506. memcpy(C,a1,s[C->id]);
  507. /*FI*/}
  508. void rT159make(T159 *C,T0* a1,T0 * a2){
  509. C->_to_string=a1;
  510. C->_start_position=a2;
  511. }
  512. void rT269cpp_dicho(T269 *C,int a1,int a2,int a3){
  513. int _exp_to_ref=0;
  514. T0 * _dyn_rf=NULL;
  515. T0 * _dyn_rc=NULL;
  516. int _m=0;
  517. /*IF*/if ((a1)==(a2)) {
  518. _dyn_rc=rT263item((T263*)(C)->_switch,a1);
  519. _dyn_rf=rT269dynamic(_dyn_rc,(C)->_static_rf);
  520. /*IF*/if (a3) {
  521. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1006);
  522. _exp_to_ref=(XrT58is_expanded(XrT261result_type(_dyn_rf)))&&(XrT58is_reference(XrT261result_type((C)->_static_rf)));
  523. /*IF*/if (_exp_to_ref) {
  524. XrT58expanded_to_reference(XrT261result_type(_dyn_rf));
  525. rT40put_character((T40*)oRBC27cpp,'\50');
  526. }
  527. /*FI*/}
  528. /*FI*/rT40push_switch((T40*)oRBC27cpp,_dyn_rf,(T0 *)C);
  529. XrT261mapping_c(_dyn_rf);
  530. rT40pop((T40*)oRBC27cpp);
  531. /*IF*/if (a3) {
  532. /*IF*/if (_exp_to_ref) {
  533. rT40put_character((T40*)oRBC27cpp,'\51');
  534. }
  535. /*FI*/rT40put_character((T40*)oRBC27cpp,'\73');
  536. }
  537. /*FI*/}
  538. else {
  539. _m=((a1)+(a2))/(2);
  540. _dyn_rc=rT263item((T263*)(C)->_switch,_m);
  541. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1009);
  542. rT40put_integer((T40*)oRBC27cpp,((T260*)_dyn_rc)->_id);
  543. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1010);
  544. rT269cpp_dicho(C,a1,_m,a3);
  545. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1011);
  546. rT269cpp_dicho(C,(_m)+(1),a2,a3);
  547. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1012);
  548. }
  549. /*FI*/}
  550. void rT269sort_running(/*C*/T0* a1){
  551. int _moved=0;
  552. int _buble=0;
  553. int _max=0;
  554. int _min=0;
  555. _max=((T263*)a1)->_upper;
  556. _min=((T263*)a1)->_lower;
  557. _moved=1;
  558. while (!(!(_moved))) {
  559. _moved=0;
  560. /*IF*/if (((_max)-(_min))>(0)) {
  561. _buble=(_min)+(1);
  562. while (!((_buble)>(_max))) {
  563. /*IF*/if ((((T260*)rT263item((T263*)a1,(_buble)-(1)))->_id)>(((T260*)rT263item((T263*)a1,_buble))->_id)) {
  564. rT263swap((T263*)a1,(_buble)-(1),_buble);
  565. _moved=1;
  566. }
  567. /*FI*/_buble=(_buble)+(1);
  568. }
  569. _max=(_max)-(1);
  570. }
  571. /*FI*//*IF*/if ((_moved)&&(((_max)-(_min))>(0))) {
  572. _moved=0;
  573. _buble=(_max)-(1);
  574. while (!((_buble)<(_min))) {
  575. /*IF*/if ((((T260*)rT263item((T263*)a1,_buble))->_id)>(((T260*)rT263item((T263*)a1,(_buble)+(1)))->_id)) {
  576. rT263swap((T263*)a1,_buble,(_buble)+(1));
  577. _moved=1;
  578. }
  579. /*FI*/_buble=(_buble)-(1);
  580. }
  581. _min=(_min)+(1);
  582. }
  583. /*FI*/}
  584. }
  585. T0*oRBC269ts;
  586. void rT269fatal_error(/*C*/T0* a1){
  587. rT45fatal_error((T45*)oRBC27eh,a1);
  588. }
  589. void rT269put_target(/*C*/T0 * a1){
  590. int _invariant_flag=0;
  591. _invariant_flag=rT40call_invariant_start((T40*)oRBC27cpp,XrT261current_type(a1));
  592. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1168);
  593. rT40put_integer((T40*)oRBC27cpp,XrT261id(a1));
  594. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1169);
  595. /*IF*/if (_invariant_flag) {
  596. rT40call_invariant_end((T40*)oRBC27cpp);
  597. }
  598. /*FI*/}
  599. void rT269c_define(T269 *C){
  600. int _i=0;
  601. T0 * _result_type=NULL;
  602. T0 * _t=NULL;
  603. T0 * _arguments=NULL;
  604. int _boost=0;
  605. _boost=rT44boost((T44*)oRBC27eiffel_run_control);
  606. _arguments=XrT261arguments((C)->_static_rf);
  607. _result_type=XrT261result_type((C)->_static_rf);
  608. /*(IRF3*/(((T7*)oRBC269ts)->_count)=(0);
  609. /*)*//*IF*/if (!(_result_type)) {
  610. rT7append((T7*)oRBC269ts,(T0 *)ms998);
  611. }
  612. else {
  613. _result_type=XrT58run_type(_result_type);
  614. XrT58c_type_in(_result_type,oRBC269ts);
  615. }
  616. /*FI*/rT7append((T7*)oRBC269ts,(T0 *)ms999);
  617. rT2append_in(XrT58id((C)->_target_type),oRBC269ts);
  618. XrT67mapping_c_in((C)->_name,oRBC269ts);
  619. /*IF*/if (_boost) {
  620. rT7append((T7*)oRBC269ts,(T0 *)ms1000);
  621. }
  622. else {
  623. rT7append((T7*)oRBC269ts,(T0 *)ms1001);
  624. }
  625. /*FI*//*IF*/if (((int)_arguments)) {
  626. _i=1;
  627. while (!((_i)>(rT92count((T92*)_arguments)))) {
  628. rT7extend((T7*)oRBC269ts,'\54');
  629. _t=XrT58run_type(rT92type((T92*)_arguments,_i));
  630. XrT58c_type_in(_t,oRBC269ts);
  631. rT7append((T7*)oRBC269ts,(T0 *)ms1002);
  632. rT2append_in(_i,oRBC269ts);
  633. _i=(_i)+(1);
  634. }
  635. }
  636. /*FI*/rT7extend((T7*)oRBC269ts,'\51');
  637. rT40put_c_heading((T40*)oRBC27cpp,oRBC269ts);
  638. rT40swap_on_c((T40*)oRBC27cpp);
  639. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1003);
  640. rT269sort_running((C)->_switch);
  641. /*IF*/if (_boost) {
  642. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1004);
  643. }
  644. else {
  645. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1005);
  646. }
  647. /*FI*/rT269cpp_dicho(C,((T263*)(C)->_switch)->_lower,((T263*)(C)->_switch)->_upper,((int)_result_type));
  648. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1013);
  649. }
  650. void rT269put_arguments(T269 *C,T0 * a1){
  651. T0 * _ft=NULL;
  652. T0 * _at=NULL;
  653. int _i=0;
  654. T0 * _eal=NULL;
  655. _eal=XrT261arguments((C)->_static_rf);
  656. _i=1;
  657. while (!((_i)>(rT92count((T92*)_eal)))) {
  658. /*IF*/if ((_i)>(1)) {
  659. rT40put_character((T40*)oRBC27cpp,'\54');
  660. }
  661. /*FI*/_at=XrT58run_type(rT92type((T92*)_eal,_i));
  662. _ft=XrT58run_type(rT92type((T92*)a1,_i));
  663. /*IF*/if (XrT58is_expanded(_ft)) {
  664. /*IF*/if (XrT58is_expanded(_at)) {
  665. rT40put_character((T40*)oRBC27cpp,'a');
  666. rT40put_integer((T40*)oRBC27cpp,_i);
  667. }
  668. else {
  669. /*IF*/if (XrT58fast_mapping_c(_ft)) {
  670. rT40put_character((T40*)oRBC27cpp,'\50');
  671. XrT58cast_to_ref(_ft);
  672. rT40put_character((T40*)oRBC27cpp,'a');
  673. rT40put_integer((T40*)oRBC27cpp,_i);
  674. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1395);
  675. }
  676. else {
  677. /*UT*/(T45*)oRBC27eh;
  678. rT45add_position(XrT58start_position(rT92type((T92*)a1,_i)));
  679. /*UT*/(T45*)oRBC27eh;
  680. rT45add_position(XrT58start_position(rT92type((T92*)_eal,_i)));
  681. rT269fatal_error((T0 *)ms1396);
  682. }
  683. /*FI*/}
  684. /*FI*/}
  685. else {
  686. /*IF*/if (XrT58is_expanded(_at)) {
  687. /*UT*/(T45*)oRBC27eh;
  688. rT45add_position(XrT58start_position(rT92type((T92*)a1,_i)));
  689. /*UT*/(T45*)oRBC27eh;
  690. rT45add_position(XrT58start_position(rT92type((T92*)_eal,_i)));
  691. rT269fatal_error((T0 *)ms1397);
  692. }
  693. else {
  694. rT40put_character((T40*)oRBC27cpp,'a');
  695. rT40put_integer((T40*)oRBC27cpp,_i);
  696. }
  697. /*FI*/}
  698. /*FI*/_i=(_i)+(1);
  699. }
  700. }
  701. T0 * rT269dynamic(/*C*/T0 * a1,T0 * a2){
  702. T0 * R=NULL;
  703. T0 * _static=NULL;
  704. T0 * _sta_name=NULL;
  705. T0 * _dyn_name=NULL;
  706. _static=XrT261current_type(a2);
  707. _sta_name=XrT261name(a2);
  708. _dyn_name=rT50name_of((T50*)rT260base_class((T260*)a1),XrT58base_class(_static),_sta_name);
  709. R=rT260get_feature((T260*)a1,_dyn_name);
  710. return R;
  711. }
  712. void rT269copy(T269 *C,T0 * a1){
  713. /*IF*//*AF*//*AE*/
  714. memcpy(C,a1,s[C->id]);
  715. /*FI*/}
  716. void rT269make(T269 *C,T0 * a1,T0 * a2,T0* a3){
  717. C->_target_type=a1;
  718. C->_name=a2;
  719. C->_switch=a3;
  720. C->_static_rf=rT260get_feature((T260*)XrT58run_class((C)->_target_type),(C)->_name);
  721. }
  722. void rT45warning(T45 *C,T0* a1){
  723. rT45append(a1);
  724. rT45print_as_warning(C);
  725. }
  726. void rT45extend(/*C*/char a1){
  727. rT7extend((T7*)oRBC45explanation,a1);
  728. }
  729. void rT45die_with_code(T45 *C,int a1){
  730. exit(a1);
  731. }
  732. void rT45fatal_error(T45 *C,T0* a1){
  733. rT7append((T7*)oRBC45explanation,a1);
  734. rT45print_as_fatal_error(C);
  735. rT45crash(C);
  736. }
  737. void rT45error(T45 *C,T0* a1){
  738. rT45append(a1);
  739. rT45print_as_error(C);
  740. }
  741. void rT45incr_nb_errors(T45 *C){
  742. C->_nb_errors=((C)->_nb_errors)+(1);
  743. /*IF*/if (((C)->_nb_errors)>=(10)) {
  744. rT33put_string((T33*)oRBC1std_error,(T0 *)ms436);
  745. rT33put_integer((T33*)oRBC1std_error,10);
  746. rT33put_string((T33*)oRBC1std_error,(T0 *)ms437);
  747. rT45die_with_code(C,1);
  748. }
  749. /*FI*/}
  750. void rT45incr_nb_warnings(T45 *C){
  751. C->_nb_warnings=((C)->_nb_warnings)+(1);
  752. }
  753. void rT45print_as_warning(T45 *C){
  754. rT45do_print((T0 *)ms82);
  755. rT45incr_nb_warnings(C);
  756. }
  757. void rT45print_as_fatal_error(T45 *C){
  758. rT45do_print((T0 *)ms48);
  759. rT45die_with_code(C,1);
  760. }
  761. void rT45print_as_error(T45 *C){
  762. rT45do_print((T0 *)ms435);
  763. rT45incr_nb_errors(C);
  764. }
  765. int ofBC45positions=0;
  766. T0*oRBC45positions;
  767. T0* rT45positions(/*C*/void){
  768. T0* R=NULL;
  769. if (ofBC45positions==0){
  770. ofBC45positions=1;
  771. {T47 *n=((T47*)new(47));
  772. rT47make(n,1,5);
  773. R=(T0 *)n;}
  774. rT47clear((T47*)R);
  775. oRBC45positions=R;}
  776. return oRBC45positions;}
  777. void rT45crash(T45 *C){
  778. rsp();
  779. rT45die_with_code(C,1);
  780. }
  781. void rT45do_print(/*C*/T0* a1){
  782. char _previous_cc='\0';
  783. char _cc='\0';
  784. int _cpt=0;
  785. int _i=0;
  786. rT33put_string((T33*)oRBC1std_error,(T0 *)ms39);
  787. rT33put_string((T33*)oRBC1std_error,a1);
  788. rT33put_string((T33*)oRBC1std_error,(T0 *)ms40);
  789. _i=1;
  790. _cpt=(9)+(((T7*)a1)->_count);
  791. while (!((_i)>(((T7*)oRBC45explanation)->_count))) {
  792. _previous_cc=_cc;
  793. _cc=rT7item((T7*)oRBC45explanation,_i);
  794. _i=(_i)+(1);
  795. /*IF*/if ((_cpt)>(60)) {
  796. /*IF*/if ((_cc)==('\40')) {
  797. rT33put_character((T33*)oRBC1std_error,'\12');
  798. _cpt=0;
  799. }
  800.  else if (((_previous_cc)==('\54'))||((_previous_cc)==('\57'))) {
  801. rT33put_character((T33*)oRBC1std_error,'\12');
  802. rT33put_character((T33*)oRBC1std_error,_cc);
  803. _cpt=1;
  804. }
  805. else {
  806. rT33put_character((T33*)oRBC1std_error,_cc);
  807. _cpt=(_cpt)+(1);
  808. }
  809. /*FI*/}
  810. else {
  811. rT33put_character((T33*)oRBC1std_error,_cc);
  812. _cpt=(_cpt)+(1);
  813. }
  814. /*FI*/}
  815. rT33put_character((T33*)oRBC1std_error,'\12');
  816. _i=((T47*)rT45positions())->_lower;
  817. while (!((_i)>(((T47*)rT45positions())->_upper))) {
  818. rT46show((T46*)rT47item((T47*)rT45positions(),_i));
  819. _i=(_i)+(1);
  820. }
  821. /*(IRF3*//*(IRF3*/(((T7*)oRBC45explanation)->_count)=(0);
  822. /*)*/rT47clear((T47*)rT45positions());
  823. /*)*/rT33put_string((T33*)oRBC1std_error,(T0 *)ms434);
  824. }
  825. void rT45append(/*C*/T0* a1){
  826. rT7append((T7*)oRBC45explanation,a1);
  827. }
  828. void rT45add_position(/*C*/T0 * a1){
  829. /*IF*/if (((int)a1)) {
  830. /*IF*/if (!(rT47has((T47*)rT45positions(),a1))) {
  831. rT47add_last((T47*)rT45positions(),a1);
  832. }
  833. /*FI*/}
  834. /*FI*/}
  835. T0*oRBC45explanation;
  836. void rT45copy(T45 *C,T0 * a1){
  837. /*IF*//*AF*//*AE*/
  838. memcpy(C,a1,s[C->id]);
  839. /*FI*/}
  840. void rT45add_type(/*C*/T0 * a1,T0* a2){
  841. rT45append((T0 *)ms478);
  842. /*IF*/if (XrT58is_run_type(a1)) {
  843. rT45append(XrT58run_time_mark(a1));
  844. }
  845. else {
  846. rT45append(XrT58written_mark(a1));
  847. }
  848. /*FI*/rT45append(a2);
  849. rT45add_position(XrT58start_position(a1));
  850. }
  851. T0 * rT144first_name(T144 *C){
  852. T0 * R=NULL;
  853. R=rT128item((T128*)(C)->_names,1);
  854. return R;
  855. }
  856. void rT144fatal_error(/*C*/T0* a1){
  857. rT45fatal_error((T45*)oRBC27eh,a1);
  858. }
  859. T0 * rT144to_run_feature(T144 *C,T0 * a1,T0 * a2){
  860. T0 * R=NULL;
  861. T0 * _rc=NULL;
  862. _rc=XrT58run_class(a1);
  863. R=rT260at((T260*)_rc,a2);
  864. if ((int)R) switch (((T0 *)R)->id) {
  865. case 277: 
  866. break;
  867. default:
  868. R = NULL;
  869. };/*IF*/if (!(R)) {
  870. {T277 *n=((T277*)new(277));
  871. rT277make(n,a1,a2,(T0 *)C);
  872. R=(T0 *)n;}
  873. }
  874. /*FI*/return R;
  875. }
  876. void rT144error(/*C*/T0 * a1,T0* a2){
  877. /*UT*/(T45*)oRBC27eh;
  878. rT45add_position(a1);
  879. rT45error((T45*)oRBC27eh,a2);
  880. }
  881. void rT144fe_undefine(/*C*/T0 * a1,T0 * a2){
  882. /*UT*/(T45*)oRBC27eh;
  883. rT45append((T0 *)ms483);
  884. /*UT*/(T45*)oRBC27eh;
  885. rT45append(XrT67to_string(a1));
  886. /*UT*/(T45*)oRBC27eh;
  887. rT45append((T0 *)ms484);
  888. /*UT*/(T45*)oRBC27eh;
  889. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  890. rT144fatal_error((T0 *)ms485);
  891. }
  892. int rT144is_merge_with(T144 *C,T0 * a1,T0 * a2){
  893. int R=0;
  894. int _ne=0;
  895. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  896. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  897. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  898. /*UT*/(T45*)oRBC27eh;
  899. rT45add_position(XrT62start_position(a1));
  900. rT144error(rT144start_position(C),(T0 *)ms488);
  901. }
  902. /*FI*/}
  903. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  904. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  905. /*UT*/(T45*)oRBC27eh;
  906. rT45add_position(XrT62start_position(a1));
  907. rT144error(rT144start_position(C),(T0 *)ms489);
  908. }
  909.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  910. /*UT*/(T45*)oRBC27eh;
  911. rT45add_position(XrT62start_position(a1));
  912. rT144error(rT144start_position(C),(T0 *)ms490);
  913. }
  914. /*FI*/}
  915. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  916. /*IF*/if (((int)(C)->_result_type)) {
  917. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  918. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  919. }
  920. /*FI*/}
  921. /*FI*/}
  922. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  923. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  924. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  925. /*UT*/(T45*)oRBC27eh;
  926. rT45add_position(XrT62start_position(a1));
  927. rT144error(rT144start_position(C),(T0 *)ms494);
  928. }
  929. /*FI*/}
  930. /*FI*/}
  931. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  932. return R;
  933. }
  934. T0 * rT144start_position(T144 *C){
  935. T0 * R=NULL;
  936. R=XrT67start_position(rT144first_name(C));
  937. return R;
  938. }
  939. void rT144collect_for(/*C*/int a1){
  940. /*IF*/if ((a1)==(1001)) {
  941. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  942. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  943. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  944. }
  945. /*FI*/}
  946. /*FI*/}
  947. else {
  948. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  949. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  950. }
  951. /*FI*/}
  952. /*FI*/}
  953. void rT144add_into(T144 *C,T0 * a1){
  954. T0 * _fn=NULL;
  955. int _i=0;
  956. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  957. _i=1;
  958. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  959. _fn=rT128item((T128*)(C)->_names,_i);
  960. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  961. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  962. /*UT*/(T45*)oRBC27eh;
  963. rT45add_position(XrT67start_position(_fn));
  964. /*UT*/(T45*)oRBC27eh;
  965. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  966. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  967. /*UT*/(T45*)oRBC27eh;
  968. rT45append(XrT67to_string(_fn));
  969. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  970. }
  971. else {
  972. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  973. }
  974. /*FI*/_i=(_i)+(1);
  975. }
  976. }
  977. T0 * rT144try_to_undefine(T144 *C,T0 * a1,T0 * a2){
  978. T0 * R=NULL;
  979. /*IF*/if (XrT67is_frozen(a1)) {
  980. /*UT*/(T45*)oRBC27eh;
  981. rT45add_position(rT144start_position(C));
  982. rT144error(XrT67start_position(a1),(T0 *)ms482);
  983. rT144fe_undefine(a1,a2);
  984. }
  985. else {
  986. R=rT144try_to_undefine_aux(C,a1,a2);
  987. /*IF*/if (((int)R)) {
  988. XrT203set_clients(R,(C)->_clients);
  989. }
  990. else {
  991. rT144fe_undefine(a1,a2);
  992. }
  993. /*FI*/}
  994. /*FI*/return R;
  995. }
  996. T0 * rT144try_to_undefine_aux(T144 *C,T0 * a1,T0 * a2){
  997. T0 * R=NULL;
  998. /*UT*/(T45*)oRBC27eh;
  999. rT45add_position(rT144start_position(C));
  1000. rT144error(XrT67start_position(a1),(T0 *)ms1518);
  1001. rT144fe_undefine(a1,a2);
  1002. return R;
  1003. }
  1004. int rT144can_hide(T144 *C,T0 * a1,T0 * a2){
  1005. int R=0;
  1006. int _ne=0;
  1007. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1008. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1009. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1010. /*UT*/(T45*)oRBC27eh;
  1011. rT45add_position(XrT62start_position(a1));
  1012. rT144error(rT144start_position(C),(T0 *)ms501);
  1013. }
  1014. /*FI*/}
  1015. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1016. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1017. /*UT*/(T45*)oRBC27eh;
  1018. rT45add_position(XrT62start_position(a1));
  1019. rT144error(rT144start_position(C),(T0 *)ms502);
  1020. }
  1021.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1022. /*UT*/(T45*)oRBC27eh;
  1023. rT45add_position(XrT62start_position(a1));
  1024. rT144error(rT144start_position(C),(T0 *)ms503);
  1025. }
  1026. /*FI*/}
  1027. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1028. /*IF*/if (((int)(C)->_result_type)) {
  1029. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1030. /*UT*/(T45*)oRBC27eh;
  1031. rT45append((T0 *)ms504);
  1032. /*UT*/(T45*)oRBC27eh;
  1033. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1034. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  1035. }
  1036. /*FI*/}
  1037. /*FI*/}
  1038. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1039. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1040. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1041. /*UT*/(T45*)oRBC27eh;
  1042. rT45add_position(XrT62start_position(a1));
  1043. /*UT*/(T45*)oRBC27eh;
  1044. rT45add_position(rT144start_position(C));
  1045. /*UT*/(T45*)oRBC27eh;
  1046. rT45append((T0 *)ms506);
  1047. /*UT*/(T45*)oRBC27eh;
  1048. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1049. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  1050. }
  1051. /*FI*/}
  1052. /*FI*/}
  1053. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1054. return R;
  1055. }
  1056. T0 * rT144base_class_name(T144 *C){
  1057. T0 * R=NULL;
  1058. R=((T50*)(C)->_base_class)->_base_class_name;
  1059. return R;
  1060. }
  1061. void rT144copy(T144 *C,T0 * a1){
  1062. /*IF*//*AF*//*AE*/
  1063. memcpy(C,a1,s[C->id]);
  1064. /*FI*/}
  1065. T0 * rT144value(T144 *C,int a1){
  1066. T0 * R=NULL;
  1067. R=rT147item((T147*)(C)->_values,a1);
  1068. return R;
  1069. }
  1070. void rT144make_e_feature(T144 *C,T0 * a1,T0 * a2){
  1071. C->_names=a1;
  1072. C->_result_type=a2;
  1073. }
  1074. void rT144make(T144 *C,T0 * a1,T0 * a2){
  1075. T0 * _ic=NULL;
  1076. int _i=0;
  1077. rT144make_e_feature(C,a1,a2);
  1078. {T147 *n=((T147*)new(147));
  1079. rT147make(n,1,rT128count((T128*)(C)->_names));
  1080. C->_values=(T0 *)n;}
  1081. _i=1;
  1082. while (!((_i)>(((T147*)(C)->_values)->_upper))) {
  1083. {T80 *n=((T80*)new(80));
  1084. rT80make(n,rT52next_unique((T52*)oRBC27small_eiffel),NULL);
  1085. _ic=(T0 *)n;}
  1086. rT147put((T147*)(C)->_values,_ic,_i);
  1087. _i=(_i)+(1);
  1088. }
  1089. }
  1090. T0 * rT148first_name(T148 *C){
  1091. T0 * R=NULL;
  1092. R=rT128item((T128*)(C)->_names,1);
  1093. return R;
  1094. }
  1095. void rT148fatal_error(/*C*/T0* a1){
  1096. rT45fatal_error((T45*)oRBC27eh,a1);
  1097. }
  1098. T0 * rT148to_run_feature(T148 *C,T0 * a1,T0 * a2){
  1099. T0 * R=NULL;
  1100. T0 * _rc=NULL;
  1101. _rc=XrT58run_class(a1);
  1102. R=rT260at((T260*)_rc,a2);
  1103. if ((int)R) switch (((T0 *)R)->id) {
  1104. case 277: 
  1105. break;
  1106. default:
  1107. R = NULL;
  1108. };/*IF*/if (!(R)) {
  1109. {T277 *n=((T277*)new(277));
  1110. rT277make(n,a1,a2,(T0 *)C);
  1111. R=(T0 *)n;}
  1112. }
  1113. /*FI*/return R;
  1114. }
  1115. void rT148error(/*C*/T0 * a1,T0* a2){
  1116. /*UT*/(T45*)oRBC27eh;
  1117. rT45add_position(a1);
  1118. rT45error((T45*)oRBC27eh,a2);
  1119. }
  1120. void rT148fe_undefine(/*C*/T0 * a1,T0 * a2){
  1121. /*UT*/(T45*)oRBC27eh;
  1122. rT45append((T0 *)ms483);
  1123. /*UT*/(T45*)oRBC27eh;
  1124. rT45append(XrT67to_string(a1));
  1125. /*UT*/(T45*)oRBC27eh;
  1126. rT45append((T0 *)ms484);
  1127. /*UT*/(T45*)oRBC27eh;
  1128. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  1129. rT148fatal_error((T0 *)ms485);
  1130. }
  1131. int rT148is_merge_with(T148 *C,T0 * a1,T0 * a2){
  1132. int R=0;
  1133. int _ne=0;
  1134. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1135. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1136. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1137. /*UT*/(T45*)oRBC27eh;
  1138. rT45add_position(XrT62start_position(a1));
  1139. rT148error(rT148start_position(C),(T0 *)ms488);
  1140. }
  1141. /*FI*/}
  1142. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1143. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1144. /*UT*/(T45*)oRBC27eh;
  1145. rT45add_position(XrT62start_position(a1));
  1146. rT148error(rT148start_position(C),(T0 *)ms489);
  1147. }
  1148.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1149. /*UT*/(T45*)oRBC27eh;
  1150. rT45add_position(XrT62start_position(a1));
  1151. rT148error(rT148start_position(C),(T0 *)ms490);
  1152. }
  1153. /*FI*/}
  1154. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1155. /*IF*/if (((int)(C)->_result_type)) {
  1156. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1157. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  1158. }
  1159. /*FI*/}
  1160. /*FI*/}
  1161. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1162. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1163. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1164. /*UT*/(T45*)oRBC27eh;
  1165. rT45add_position(XrT62start_position(a1));
  1166. rT148error(rT148start_position(C),(T0 *)ms494);
  1167. }
  1168. /*FI*/}
  1169. /*FI*/}
  1170. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1171. return R;
  1172. }
  1173. T0 * rT148start_position(T148 *C){
  1174. T0 * R=NULL;
  1175. R=XrT67start_position(rT148first_name(C));
  1176. return R;
  1177. }
  1178. void rT148collect_for(/*C*/int a1){
  1179. /*IF*/if ((a1)==(1001)) {
  1180. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1181. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  1182. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  1183. }
  1184. /*FI*/}
  1185. /*FI*/}
  1186. else {
  1187. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1188. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  1189. }
  1190. /*FI*/}
  1191. /*FI*/}
  1192. void rT148add_into(T148 *C,T0 * a1){
  1193. T0 * _fn=NULL;
  1194. int _i=0;
  1195. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  1196. _i=1;
  1197. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  1198. _fn=rT128item((T128*)(C)->_names,_i);
  1199. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  1200. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  1201. /*UT*/(T45*)oRBC27eh;
  1202. rT45add_position(XrT67start_position(_fn));
  1203. /*UT*/(T45*)oRBC27eh;
  1204. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  1205. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  1206. /*UT*/(T45*)oRBC27eh;
  1207. rT45append(XrT67to_string(_fn));
  1208. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  1209. }
  1210. else {
  1211. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  1212. }
  1213. /*FI*/_i=(_i)+(1);
  1214. }
  1215. }
  1216. T0 * rT148try_to_undefine(T148 *C,T0 * a1,T0 * a2){
  1217. T0 * R=NULL;
  1218. /*IF*/if (XrT67is_frozen(a1)) {
  1219. /*UT*/(T45*)oRBC27eh;
  1220. rT45add_position(rT148start_position(C));
  1221. rT148error(XrT67start_position(a1),(T0 *)ms482);
  1222. rT148fe_undefine(a1,a2);
  1223. }
  1224. else {
  1225. R=rT148try_to_undefine_aux(C,a1,a2);
  1226. /*IF*/if (((int)R)) {
  1227. XrT203set_clients(R,(C)->_clients);
  1228. }
  1229. else {
  1230. rT148fe_undefine(a1,a2);
  1231. }
  1232. /*FI*/}
  1233. /*FI*/return R;
  1234. }
  1235. T0 * rT148try_to_undefine_aux(T148 *C,T0 * a1,T0 * a2){
  1236. T0 * R=NULL;
  1237. /*UT*/(T45*)oRBC27eh;
  1238. rT45add_position(rT148start_position(C));
  1239. rT148error(XrT67start_position(a1),(T0 *)ms1518);
  1240. rT148fe_undefine(a1,a2);
  1241. return R;
  1242. }
  1243. int rT148can_hide(T148 *C,T0 * a1,T0 * a2){
  1244. int R=0;
  1245. int _ne=0;
  1246. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1247. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1248. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1249. /*UT*/(T45*)oRBC27eh;
  1250. rT45add_position(XrT62start_position(a1));
  1251. rT148error(rT148start_position(C),(T0 *)ms501);
  1252. }
  1253. /*FI*/}
  1254. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1255. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1256. /*UT*/(T45*)oRBC27eh;
  1257. rT45add_position(XrT62start_position(a1));
  1258. rT148error(rT148start_position(C),(T0 *)ms502);
  1259. }
  1260.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1261. /*UT*/(T45*)oRBC27eh;
  1262. rT45add_position(XrT62start_position(a1));
  1263. rT148error(rT148start_position(C),(T0 *)ms503);
  1264. }
  1265. /*FI*/}
  1266. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1267. /*IF*/if (((int)(C)->_result_type)) {
  1268. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1269. /*UT*/(T45*)oRBC27eh;
  1270. rT45append((T0 *)ms504);
  1271. /*UT*/(T45*)oRBC27eh;
  1272. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1273. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  1274. }
  1275. /*FI*/}
  1276. /*FI*/}
  1277. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1278. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1279. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1280. /*UT*/(T45*)oRBC27eh;
  1281. rT45add_position(XrT62start_position(a1));
  1282. /*UT*/(T45*)oRBC27eh;
  1283. rT45add_position(rT148start_position(C));
  1284. /*UT*/(T45*)oRBC27eh;
  1285. rT45append((T0 *)ms506);
  1286. /*UT*/(T45*)oRBC27eh;
  1287. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1288. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  1289. }
  1290. /*FI*/}
  1291. /*FI*/}
  1292. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1293. return R;
  1294. }
  1295. T0 * rT148base_class_name(T148 *C){
  1296. T0 * R=NULL;
  1297. R=((T50*)(C)->_base_class)->_base_class_name;
  1298. return R;
  1299. }
  1300. void rT148copy(T148 *C,T0 * a1){
  1301. /*IF*//*AF*//*AE*/
  1302. memcpy(C,a1,s[C->id]);
  1303. /*FI*/}
  1304. T0 * rT148value(T148 *C,int a1){
  1305. T0 * R=NULL;
  1306. R=(C)->_value_mem;
  1307. return R;
  1308. }
  1309. void rT148make_e_feature(T148 *C,T0 * a1,T0 * a2){
  1310. C->_names=a1;
  1311. C->_result_type=a2;
  1312. }
  1313. void rT148make(T148 *C,T0 * a1,T0 * a2,T0 * a3){
  1314. rT148make_e_feature(C,a1,a2);
  1315. C->_value_mem=a3;
  1316. }
  1317. T0 * rT149first_name(T149 *C){
  1318. T0 * R=NULL;
  1319. R=rT128item((T128*)(C)->_names,1);
  1320. return R;
  1321. }
  1322. void rT149fatal_error(/*C*/T0* a1){
  1323. rT45fatal_error((T45*)oRBC27eh,a1);
  1324. }
  1325. T0 * rT149to_run_feature(T149 *C,T0 * a1,T0 * a2){
  1326. T0 * R=NULL;
  1327. T0 * _rc=NULL;
  1328. _rc=XrT58run_class(a1);
  1329. R=rT260at((T260*)_rc,a2);
  1330. if ((int)R) switch (((T0 *)R)->id) {
  1331. case 277: 
  1332. break;
  1333. default:
  1334. R = NULL;
  1335. };/*IF*/if (!(R)) {
  1336. {T277 *n=((T277*)new(277));
  1337. rT277make(n,a1,a2,(T0 *)C);
  1338. R=(T0 *)n;}
  1339. }
  1340. /*FI*/return R;
  1341. }
  1342. void rT149error(/*C*/T0 * a1,T0* a2){
  1343. /*UT*/(T45*)oRBC27eh;
  1344. rT45add_position(a1);
  1345. rT45error((T45*)oRBC27eh,a2);
  1346. }
  1347. void rT149fe_undefine(/*C*/T0 * a1,T0 * a2){
  1348. /*UT*/(T45*)oRBC27eh;
  1349. rT45append((T0 *)ms483);
  1350. /*UT*/(T45*)oRBC27eh;
  1351. rT45append(XrT67to_string(a1));
  1352. /*UT*/(T45*)oRBC27eh;
  1353. rT45append((T0 *)ms484);
  1354. /*UT*/(T45*)oRBC27eh;
  1355. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  1356. rT149fatal_error((T0 *)ms485);
  1357. }
  1358. int rT149is_merge_with(T149 *C,T0 * a1,T0 * a2){
  1359. int R=0;
  1360. int _ne=0;
  1361. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1362. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1363. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1364. /*UT*/(T45*)oRBC27eh;
  1365. rT45add_position(XrT62start_position(a1));
  1366. rT149error(rT149start_position(C),(T0 *)ms488);
  1367. }
  1368. /*FI*/}
  1369. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1370. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1371. /*UT*/(T45*)oRBC27eh;
  1372. rT45add_position(XrT62start_position(a1));
  1373. rT149error(rT149start_position(C),(T0 *)ms489);
  1374. }
  1375.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1376. /*UT*/(T45*)oRBC27eh;
  1377. rT45add_position(XrT62start_position(a1));
  1378. rT149error(rT149start_position(C),(T0 *)ms490);
  1379. }
  1380. /*FI*/}
  1381. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1382. /*IF*/if (((int)(C)->_result_type)) {
  1383. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1384. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  1385. }
  1386. /*FI*/}
  1387. /*FI*/}
  1388. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1389. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1390. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1391. /*UT*/(T45*)oRBC27eh;
  1392. rT45add_position(XrT62start_position(a1));
  1393. rT149error(rT149start_position(C),(T0 *)ms494);
  1394. }
  1395. /*FI*/}
  1396. /*FI*/}
  1397. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1398. return R;
  1399. }
  1400. T0 * rT149start_position(T149 *C){
  1401. T0 * R=NULL;
  1402. R=XrT67start_position(rT149first_name(C));
  1403. return R;
  1404. }
  1405. void rT149collect_for(/*C*/int a1){
  1406. /*IF*/if ((a1)==(1001)) {
  1407. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1408. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  1409. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  1410. }
  1411. /*FI*/}
  1412. /*FI*/}
  1413. else {
  1414. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1415. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  1416. }
  1417. /*FI*/}
  1418. /*FI*/}
  1419. void rT149add_into(T149 *C,T0 * a1){
  1420. T0 * _fn=NULL;
  1421. int _i=0;
  1422. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  1423. _i=1;
  1424. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  1425. _fn=rT128item((T128*)(C)->_names,_i);
  1426. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  1427. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  1428. /*UT*/(T45*)oRBC27eh;
  1429. rT45add_position(XrT67start_position(_fn));
  1430. /*UT*/(T45*)oRBC27eh;
  1431. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  1432. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  1433. /*UT*/(T45*)oRBC27eh;
  1434. rT45append(XrT67to_string(_fn));
  1435. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  1436. }
  1437. else {
  1438. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  1439. }
  1440. /*FI*/_i=(_i)+(1);
  1441. }
  1442. }
  1443. T0 * rT149try_to_undefine(T149 *C,T0 * a1,T0 * a2){
  1444. T0 * R=NULL;
  1445. /*IF*/if (XrT67is_frozen(a1)) {
  1446. /*UT*/(T45*)oRBC27eh;
  1447. rT45add_position(rT149start_position(C));
  1448. rT149error(XrT67start_position(a1),(T0 *)ms482);
  1449. rT149fe_undefine(a1,a2);
  1450. }
  1451. else {
  1452. R=rT149try_to_undefine_aux(C,a1,a2);
  1453. /*IF*/if (((int)R)) {
  1454. XrT203set_clients(R,(C)->_clients);
  1455. }
  1456. else {
  1457. rT149fe_undefine(a1,a2);
  1458. }
  1459. /*FI*/}
  1460. /*FI*/return R;
  1461. }
  1462. T0 * rT149try_to_undefine_aux(T149 *C,T0 * a1,T0 * a2){
  1463. T0 * R=NULL;
  1464. /*UT*/(T45*)oRBC27eh;
  1465. rT45add_position(rT149start_position(C));
  1466. rT149error(XrT67start_position(a1),(T0 *)ms1518);
  1467. rT149fe_undefine(a1,a2);
  1468. return R;
  1469. }
  1470. int rT149can_hide(T149 *C,T0 * a1,T0 * a2){
  1471. int R=0;
  1472. int _ne=0;
  1473. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1474. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1475. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1476. /*UT*/(T45*)oRBC27eh;
  1477. rT45add_position(XrT62start_position(a1));
  1478. rT149error(rT149start_position(C),(T0 *)ms501);
  1479. }
  1480. /*FI*/}
  1481. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1482. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1483. /*UT*/(T45*)oRBC27eh;
  1484. rT45add_position(XrT62start_position(a1));
  1485. rT149error(rT149start_position(C),(T0 *)ms502);
  1486. }
  1487.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1488. /*UT*/(T45*)oRBC27eh;
  1489. rT45add_position(XrT62start_position(a1));
  1490. rT149error(rT149start_position(C),(T0 *)ms503);
  1491. }
  1492. /*FI*/}
  1493. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1494. /*IF*/if (((int)(C)->_result_type)) {
  1495. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1496. /*UT*/(T45*)oRBC27eh;
  1497. rT45append((T0 *)ms504);
  1498. /*UT*/(T45*)oRBC27eh;
  1499. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1500. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  1501. }
  1502. /*FI*/}
  1503. /*FI*/}
  1504. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1505. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1506. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1507. /*UT*/(T45*)oRBC27eh;
  1508. rT45add_position(XrT62start_position(a1));
  1509. /*UT*/(T45*)oRBC27eh;
  1510. rT45add_position(rT149start_position(C));
  1511. /*UT*/(T45*)oRBC27eh;
  1512. rT45append((T0 *)ms506);
  1513. /*UT*/(T45*)oRBC27eh;
  1514. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1515. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  1516. }
  1517. /*FI*/}
  1518. /*FI*/}
  1519. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1520. return R;
  1521. }
  1522. T0 * rT149base_class_name(T149 *C){
  1523. T0 * R=NULL;
  1524. R=((T50*)(C)->_base_class)->_base_class_name;
  1525. return R;
  1526. }
  1527. void rT149copy(T149 *C,T0 * a1){
  1528. /*IF*//*AF*//*AE*/
  1529. memcpy(C,a1,s[C->id]);
  1530. /*FI*/}
  1531. T0 * rT149value(T149 *C,int a1){
  1532. T0 * R=NULL;
  1533. R=(C)->_value_mem;
  1534. return R;
  1535. }
  1536. void rT149make_e_feature(T149 *C,T0 * a1,T0 * a2){
  1537. C->_names=a1;
  1538. C->_result_type=a2;
  1539. }
  1540. void rT149make(T149 *C,T0 * a1,T0 * a2,T0 * a3){
  1541. rT149make_e_feature(C,a1,a2);
  1542. C->_value_mem=a3;
  1543. }
  1544. T0 * rT150first_name(T150 *C){
  1545. T0 * R=NULL;
  1546. R=rT128item((T128*)(C)->_names,1);
  1547. return R;
  1548. }
  1549. void rT150fatal_error(/*C*/T0* a1){
  1550. rT45fatal_error((T45*)oRBC27eh,a1);
  1551. }
  1552. T0 * rT150to_run_feature(T150 *C,T0 * a1,T0 * a2){
  1553. T0 * R=NULL;
  1554. T0 * _rc=NULL;
  1555. _rc=XrT58run_class(a1);
  1556. R=rT260at((T260*)_rc,a2);
  1557. if ((int)R) switch (((T0 *)R)->id) {
  1558. case 277: 
  1559. break;
  1560. default:
  1561. R = NULL;
  1562. };/*IF*/if (!(R)) {
  1563. {T277 *n=((T277*)new(277));
  1564. rT277make(n,a1,a2,(T0 *)C);
  1565. R=(T0 *)n;}
  1566. }
  1567. /*FI*/return R;
  1568. }
  1569. void rT150error(/*C*/T0 * a1,T0* a2){
  1570. /*UT*/(T45*)oRBC27eh;
  1571. rT45add_position(a1);
  1572. rT45error((T45*)oRBC27eh,a2);
  1573. }
  1574. void rT150fe_undefine(/*C*/T0 * a1,T0 * a2){
  1575. /*UT*/(T45*)oRBC27eh;
  1576. rT45append((T0 *)ms483);
  1577. /*UT*/(T45*)oRBC27eh;
  1578. rT45append(XrT67to_string(a1));
  1579. /*UT*/(T45*)oRBC27eh;
  1580. rT45append((T0 *)ms484);
  1581. /*UT*/(T45*)oRBC27eh;
  1582. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  1583. rT150fatal_error((T0 *)ms485);
  1584. }
  1585. int rT150is_merge_with(T150 *C,T0 * a1,T0 * a2){
  1586. int R=0;
  1587. int _ne=0;
  1588. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1589. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1590. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1591. /*UT*/(T45*)oRBC27eh;
  1592. rT45add_position(XrT62start_position(a1));
  1593. rT150error(rT150start_position(C),(T0 *)ms488);
  1594. }
  1595. /*FI*/}
  1596. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1597. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1598. /*UT*/(T45*)oRBC27eh;
  1599. rT45add_position(XrT62start_position(a1));
  1600. rT150error(rT150start_position(C),(T0 *)ms489);
  1601. }
  1602.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1603. /*UT*/(T45*)oRBC27eh;
  1604. rT45add_position(XrT62start_position(a1));
  1605. rT150error(rT150start_position(C),(T0 *)ms490);
  1606. }
  1607. /*FI*/}
  1608. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1609. /*IF*/if (((int)(C)->_result_type)) {
  1610. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1611. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  1612. }
  1613. /*FI*/}
  1614. /*FI*/}
  1615. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1616. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1617. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1618. /*UT*/(T45*)oRBC27eh;
  1619. rT45add_position(XrT62start_position(a1));
  1620. rT150error(rT150start_position(C),(T0 *)ms494);
  1621. }
  1622. /*FI*/}
  1623. /*FI*/}
  1624. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1625. return R;
  1626. }
  1627. T0 * rT150start_position(T150 *C){
  1628. T0 * R=NULL;
  1629. R=XrT67start_position(rT150first_name(C));
  1630. return R;
  1631. }
  1632. void rT150collect_for(/*C*/int a1){
  1633. /*IF*/if ((a1)==(1001)) {
  1634. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1635. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  1636. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  1637. }
  1638. /*FI*/}
  1639. /*FI*/}
  1640. else {
  1641. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1642. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  1643. }
  1644. /*FI*/}
  1645. /*FI*/}
  1646. void rT150add_into(T150 *C,T0 * a1){
  1647. T0 * _fn=NULL;
  1648. int _i=0;
  1649. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  1650. _i=1;
  1651. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  1652. _fn=rT128item((T128*)(C)->_names,_i);
  1653. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  1654. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  1655. /*UT*/(T45*)oRBC27eh;
  1656. rT45add_position(XrT67start_position(_fn));
  1657. /*UT*/(T45*)oRBC27eh;
  1658. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  1659. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  1660. /*UT*/(T45*)oRBC27eh;
  1661. rT45append(XrT67to_string(_fn));
  1662. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  1663. }
  1664. else {
  1665. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  1666. }
  1667. /*FI*/_i=(_i)+(1);
  1668. }
  1669. }
  1670. T0* rT150clone(T150 *C,T0* a1){
  1671. T0* R=NULL;
  1672. /*IF*/if (((int)a1)) {
  1673. R=(T0 *)new(a1->id);
  1674. AF_1
  1675. XrT28copy(R,a1);
  1676. AF_0
  1677. }
  1678. /*FI*/return R;
  1679. }
  1680. T0 * rT150try_to_undefine(T150 *C,T0 * a1,T0 * a2){
  1681. T0 * R=NULL;
  1682. /*IF*/if (XrT67is_frozen(a1)) {
  1683. /*UT*/(T45*)oRBC27eh;
  1684. rT45add_position(rT150start_position(C));
  1685. rT150error(XrT67start_position(a1),(T0 *)ms482);
  1686. rT150fe_undefine(a1,a2);
  1687. }
  1688. else {
  1689. R=rT150try_to_undefine_aux(C,a1,a2);
  1690. /*IF*/if (((int)R)) {
  1691. XrT203set_clients(R,(C)->_clients);
  1692. }
  1693. else {
  1694. rT150fe_undefine(a1,a2);
  1695. }
  1696. /*FI*/}
  1697. /*FI*/return R;
  1698. }
  1699. T0 * rT150try_to_undefine_aux(T150 *C,T0 * a1,T0 * a2){
  1700. T0 * R=NULL;
  1701. /*UT*/(T45*)oRBC27eh;
  1702. rT45add_position(rT150start_position(C));
  1703. rT150error(XrT67start_position(a1),(T0 *)ms1518);
  1704. rT150fe_undefine(a1,a2);
  1705. return R;
  1706. }
  1707. int rT150can_hide(T150 *C,T0 * a1,T0 * a2){
  1708. int R=0;
  1709. int _ne=0;
  1710. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1711. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1712. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1713. /*UT*/(T45*)oRBC27eh;
  1714. rT45add_position(XrT62start_position(a1));
  1715. rT150error(rT150start_position(C),(T0 *)ms501);
  1716. }
  1717. /*FI*/}
  1718. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1719. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1720. /*UT*/(T45*)oRBC27eh;
  1721. rT45add_position(XrT62start_position(a1));
  1722. rT150error(rT150start_position(C),(T0 *)ms502);
  1723. }
  1724.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1725. /*UT*/(T45*)oRBC27eh;
  1726. rT45add_position(XrT62start_position(a1));
  1727. rT150error(rT150start_position(C),(T0 *)ms503);
  1728. }
  1729. /*FI*/}
  1730. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1731. /*IF*/if (((int)(C)->_result_type)) {
  1732. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1733. /*UT*/(T45*)oRBC27eh;
  1734. rT45append((T0 *)ms504);
  1735. /*UT*/(T45*)oRBC27eh;
  1736. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1737. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  1738. }
  1739. /*FI*/}
  1740. /*FI*/}
  1741. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1742. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1743. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1744. /*UT*/(T45*)oRBC27eh;
  1745. rT45add_position(XrT62start_position(a1));
  1746. /*UT*/(T45*)oRBC27eh;
  1747. rT45add_position(rT150start_position(C));
  1748. /*UT*/(T45*)oRBC27eh;
  1749. rT45append((T0 *)ms506);
  1750. /*UT*/(T45*)oRBC27eh;
  1751. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1752. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  1753. }
  1754. /*FI*/}
  1755. /*FI*/}
  1756. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1757. return R;
  1758. }
  1759. T0 * rT150base_class_name(T150 *C){
  1760. T0 * R=NULL;
  1761. R=((T50*)(C)->_base_class)->_base_class_name;
  1762. return R;
  1763. }
  1764. void rT150copy(T150 *C,T0 * a1){
  1765. /*IF*//*AF*//*AE*/
  1766. memcpy(C,a1,s[C->id]);
  1767. /*FI*/}
  1768. T0 * rT150value(T150 *C,int a1){
  1769. T0 * R=NULL;
  1770. R=rT151item((T151*)(C)->_values,a1);
  1771. return R;
  1772. }
  1773. void rT150make_e_feature(T150 *C,T0 * a1,T0 * a2){
  1774. C->_names=a1;
  1775. C->_result_type=a2;
  1776. }
  1777. void rT150make(T150 *C,T0 * a1,T0 * a2,T0 * a3){
  1778. int _i=0;
  1779. rT150make_e_feature(C,a1,a2);
  1780. {T151 *n=((T151*)new(151));
  1781. rT151make(n,1,rT128count((T128*)(C)->_names));
  1782. C->_values=(T0 *)n;}
  1783. rT151put((T151*)(C)->_values,a3,1);
  1784. _i=2;
  1785. while (!((_i)>(((T151*)(C)->_values)->_upper))) {
  1786. rT151put((T151*)(C)->_values,rT150clone(C,a3),_i);
  1787. _i=(_i)+(1);
  1788. }
  1789. }
  1790. T0 * rT152first_name(T152 *C){
  1791. T0 * R=NULL;
  1792. R=rT128item((T128*)(C)->_names,1);
  1793. return R;
  1794. }
  1795. void rT152fatal_error(/*C*/T0* a1){
  1796. rT45fatal_error((T45*)oRBC27eh,a1);
  1797. }
  1798. T0 * rT152to_run_feature(T152 *C,T0 * a1,T0 * a2){
  1799. T0 * R=NULL;
  1800. T0 * _rc=NULL;
  1801. _rc=XrT58run_class(a1);
  1802. R=rT260at((T260*)_rc,a2);
  1803. if ((int)R) switch (((T0 *)R)->id) {
  1804. case 277: 
  1805. break;
  1806. default:
  1807. R = NULL;
  1808. };/*IF*/if (!(R)) {
  1809. {T277 *n=((T277*)new(277));
  1810. rT277make(n,a1,a2,(T0 *)C);
  1811. R=(T0 *)n;}
  1812. }
  1813. /*FI*/return R;
  1814. }
  1815. void rT152error(/*C*/T0 * a1,T0* a2){
  1816. /*UT*/(T45*)oRBC27eh;
  1817. rT45add_position(a1);
  1818. rT45error((T45*)oRBC27eh,a2);
  1819. }
  1820. void rT152fe_undefine(/*C*/T0 * a1,T0 * a2){
  1821. /*UT*/(T45*)oRBC27eh;
  1822. rT45append((T0 *)ms483);
  1823. /*UT*/(T45*)oRBC27eh;
  1824. rT45append(XrT67to_string(a1));
  1825. /*UT*/(T45*)oRBC27eh;
  1826. rT45append((T0 *)ms484);
  1827. /*UT*/(T45*)oRBC27eh;
  1828. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  1829. rT152fatal_error((T0 *)ms485);
  1830. }
  1831. int rT152is_merge_with(T152 *C,T0 * a1,T0 * a2){
  1832. int R=0;
  1833. int _ne=0;
  1834. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1835. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1836. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1837. /*UT*/(T45*)oRBC27eh;
  1838. rT45add_position(XrT62start_position(a1));
  1839. rT152error(rT152start_position(C),(T0 *)ms488);
  1840. }
  1841. /*FI*/}
  1842. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1843. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1844. /*UT*/(T45*)oRBC27eh;
  1845. rT45add_position(XrT62start_position(a1));
  1846. rT152error(rT152start_position(C),(T0 *)ms489);
  1847. }
  1848.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1849. /*UT*/(T45*)oRBC27eh;
  1850. rT45add_position(XrT62start_position(a1));
  1851. rT152error(rT152start_position(C),(T0 *)ms490);
  1852. }
  1853. /*FI*/}
  1854. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1855. /*IF*/if (((int)(C)->_result_type)) {
  1856. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1857. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  1858. }
  1859. /*FI*/}
  1860. /*FI*/}
  1861. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1862. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1863. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1864. /*UT*/(T45*)oRBC27eh;
  1865. rT45add_position(XrT62start_position(a1));
  1866. rT152error(rT152start_position(C),(T0 *)ms494);
  1867. }
  1868. /*FI*/}
  1869. /*FI*/}
  1870. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1871. return R;
  1872. }
  1873. T0 * rT152start_position(T152 *C){
  1874. T0 * R=NULL;
  1875. R=XrT67start_position(rT152first_name(C));
  1876. return R;
  1877. }
  1878. void rT152collect_for(/*C*/int a1){
  1879. /*IF*/if ((a1)==(1001)) {
  1880. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1881. /*IF*/if (!(rT268fast_has((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/))) {
  1882. rT268add_last((T268*)oRBC62require_collector,/*(IRF4*/NULL/*)*/);
  1883. }
  1884. /*FI*/}
  1885. /*FI*/}
  1886. else {
  1887. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1888. rT157add_into((T157*)/*(IRF4*/NULL/*)*/,oRBC62assertion_collector);
  1889. }
  1890. /*FI*/}
  1891. /*FI*/}
  1892. void rT152add_into(T152 *C,T0 * a1){
  1893. T0 * _fn=NULL;
  1894. int _i=0;
  1895. C->_base_class=rT46base_class((T46*)XrT67start_position(rT128item((T128*)(C)->_names,1)));
  1896. _i=1;
  1897. while (!((_i)>(rT128count((T128*)(C)->_names)))) {
  1898. _fn=rT128item((T128*)(C)->_names,_i);
  1899. /*IF*/if (rT61has((T61*)a1,XrT67to_key(_fn))) {
  1900. _fn=XrT62first_name(rT61at((T61*)a1,XrT67to_key(_fn)));
  1901. /*UT*/(T45*)oRBC27eh;
  1902. rT45add_position(XrT67start_position(_fn));
  1903. /*UT*/(T45*)oRBC27eh;
  1904. rT45add_position(XrT67start_position(rT128item((T128*)(C)->_names,_i)));
  1905. rT45error((T45*)oRBC27eh,(T0 *)ms419);
  1906. /*UT*/(T45*)oRBC27eh;
  1907. rT45append(XrT67to_string(_fn));
  1908. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  1909. }
  1910. else {
  1911. rT61put((T61*)a1,(T0 *)C,XrT67to_key(_fn));
  1912. }
  1913. /*FI*/_i=(_i)+(1);
  1914. }
  1915. }
  1916. T0 * rT152try_to_undefine(T152 *C,T0 * a1,T0 * a2){
  1917. T0 * R=NULL;
  1918. /*IF*/if (XrT67is_frozen(a1)) {
  1919. /*UT*/(T45*)oRBC27eh;
  1920. rT45add_position(rT152start_position(C));
  1921. rT152error(XrT67start_position(a1),(T0 *)ms482);
  1922. rT152fe_undefine(a1,a2);
  1923. }
  1924. else {
  1925. R=rT152try_to_undefine_aux(C,a1,a2);
  1926. /*IF*/if (((int)R)) {
  1927. XrT203set_clients(R,(C)->_clients);
  1928. }
  1929. else {
  1930. rT152fe_undefine(a1,a2);
  1931. }
  1932. /*FI*/}
  1933. /*FI*/return R;
  1934. }
  1935. T0 * rT152try_to_undefine_aux(T152 *C,T0 * a1,T0 * a2){
  1936. T0 * R=NULL;
  1937. /*UT*/(T45*)oRBC27eh;
  1938. rT45add_position(rT152start_position(C));
  1939. rT152error(XrT67start_position(a1),(T0 *)ms1518);
  1940. rT152fe_undefine(a1,a2);
  1941. return R;
  1942. }
  1943. int rT152can_hide(T152 *C,T0 * a1,T0 * a2){
  1944. int R=0;
  1945. int _ne=0;
  1946. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1947. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  1948. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  1949. /*UT*/(T45*)oRBC27eh;
  1950. rT45add_position(XrT62start_position(a1));
  1951. rT152error(rT152start_position(C),(T0 *)ms501);
  1952. }
  1953. /*FI*/}
  1954. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  1955. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  1956. /*UT*/(T45*)oRBC27eh;
  1957. rT45add_position(XrT62start_position(a1));
  1958. rT152error(rT152start_position(C),(T0 *)ms502);
  1959. }
  1960.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  1961. /*UT*/(T45*)oRBC27eh;
  1962. rT45add_position(XrT62start_position(a1));
  1963. rT152error(rT152start_position(C),(T0 *)ms503);
  1964. }
  1965. /*FI*/}
  1966. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1967. /*IF*/if (((int)(C)->_result_type)) {
  1968. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  1969. /*UT*/(T45*)oRBC27eh;
  1970. rT45append((T0 *)ms504);
  1971. /*UT*/(T45*)oRBC27eh;
  1972. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1973. rT45error((T45*)oRBC27eh,(T0 *)ms505);
  1974. }
  1975. /*FI*/}
  1976. /*FI*/}
  1977. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  1978. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  1979. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  1980. /*UT*/(T45*)oRBC27eh;
  1981. rT45add_position(XrT62start_position(a1));
  1982. /*UT*/(T45*)oRBC27eh;
  1983. rT45add_position(rT152start_position(C));
  1984. /*UT*/(T45*)oRBC27eh;
  1985. rT45append((T0 *)ms506);
  1986. /*UT*/(T45*)oRBC27eh;
  1987. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  1988. rT45error((T45*)oRBC27eh,(T0 *)ms507);
  1989. }
  1990. /*FI*/}
  1991. /*FI*/}
  1992. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  1993. return R;
  1994. }
  1995. T0 * rT152base_class_name(T152 *C){
  1996. T0 * R=NULL;
  1997. R=((T50*)(C)->_base_class)->_base_class_name;
  1998. return R;
  1999. }
  2000. void rT152copy(T152 *C,T0 * a1){
  2001. /*IF*//*AF*//*AE*/
  2002. memcpy(C,a1,s[C->id]);
  2003. /*FI*/}
  2004. T0 * rT152value(T152 *C,int a1){
  2005. T0 * R=NULL;
  2006. R=(C)->_value_mem;
  2007. return R;
  2008. }
  2009. void rT152make_e_feature(T152 *C,T0 * a1,T0 * a2){
  2010. C->_names=a1;
  2011. C->_result_type=a2;
  2012. }
  2013. void rT152make(T152 *C,T0 * a1,T0 * a2,T0 * a3){
  2014. rT152make_e_feature(C,a1,a2);
  2015. C->_value_mem=a3;
  2016. }
  2017. T0 * rT153first_name(T153 *C){
  2018. T0 * R=NULL;
  2019. R=rT128item((T128*)(C)->_names,1);
  2020. return R;
  2021. }
  2022. void rT153fatal_error(/*C*/T0* a1){
  2023. rT45fatal_error((T45*)oRBC27eh,a1);
  2024. }
  2025. T0 * rT153to_run_feature(T153 *C,T0 * a1,T0 * a2){
  2026. T0 * R=NULL;
  2027. T0 * _rc=NULL;
  2028. _rc=XrT58run_class(a1);
  2029. R=rT260at((T260*)_rc,a2);
  2030. if ((int)R) switch (((T0 *)R)->id) {
  2031. case 277: 
  2032. break;
  2033. default:
  2034. R = NULL;
  2035. };/*IF*/if (!(R)) {
  2036. {T277 *n=((T277*)new(277));
  2037. rT277make(n,a1,a2,(T0 *)C);
  2038. R=(T0 *)n;}
  2039. }
  2040. /*FI*/return R;
  2041. }
  2042. void rT153error(/*C*/T0 * a1,T0* a2){
  2043. /*UT*/(T45*)oRBC27eh;
  2044. rT45add_position(a1);
  2045. rT45error((T45*)oRBC27eh,a2);
  2046. }
  2047. void rT153fe_undefine(/*C*/T0 * a1,T0 * a2){
  2048. /*UT*/(T45*)oRBC27eh;
  2049. rT45append((T0 *)ms483);
  2050. /*UT*/(T45*)oRBC27eh;
  2051. rT45append(XrT67to_string(a1));
  2052. /*UT*/(T45*)oRBC27eh;
  2053. rT45append((T0 *)ms484);
  2054. /*UT*/(T45*)oRBC27eh;
  2055. rT45append(((T48*)((T50*)a2)->_base_class_name)->_to_string);
  2056. rT153fatal_error((T0 *)ms485);
  2057. }
  2058. int rT153is_merge_with(T153 *C,T0 * a1,T0 * a2){
  2059. int R=0;
  2060. int _ne=0;
  2061. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  2062. /*IF*/if (((T0 *)(C)->_result_type)!=((T0 *)XrT62result_type(a1))) {
  2063. /*IF*/if ((!((C)->_result_type))||(!(XrT62result_type(a1)))) {
  2064. /*UT*/(T45*)oRBC27eh;
  2065. rT45add_position(XrT62start_position(a1));
  2066. rT153error(rT153start_position(C),(T0 *)ms488);
  2067. }
  2068. /*FI*/}
  2069. /*FI*//*IF*/if (((T0 *)/*(IRF4*/NULL/*)*/)!=((T0 *)XrT62arguments(a1))) {
  2070. /*IF*/if ((!(/*(IRF4*/NULL/*)*/))||(!(XrT62arguments(a1)))) {
  2071. /*UT*/(T45*)oRBC27eh;
  2072. rT45add_position(XrT62start_position(a1));
  2073. rT153error(rT153start_position(C),(T0 *)ms489);
  2074. }
  2075.  else if ((rT92count((T92*)/*(IRF4*/NULL/*)*/))!=(rT92count((T92*)XrT62arguments(a1)))) {
  2076. /*UT*/(T45*)oRBC27eh;
  2077. rT45add_position(XrT62start_position(a1));
  2078. rT153error(rT153start_position(C),(T0 *)ms490);
  2079. }
  2080. /*FI*/}
  2081. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  2082. /*IF*/if (((int)(C)->_result_type)) {
  2083. /*IF*/if (!(XrT58is_a_in((C)->_result_type,XrT62result_type(a1),a2))) {
  2084. rT45error((T45*)oRBC27eh,(T0 *)ms491);
  2085. }
  2086. /*FI*/}
  2087. /*FI*/}
  2088. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  2089. /*IF*/if (((int)/*(IRF4*/NULL/*)*/)) {
  2090. /*IF*/if (!(rT92is_a_in((T92*)/*(IRF4*/NULL/*)*/,XrT62arguments(a1),a2))) {
  2091. /*UT*/(T45*)oRBC27eh;
  2092. rT45add_position(XrT62start_position(a1));
  2093. rT153error(rT153start_position(C),(T0 *)ms494);
  2094. }
  2095. /*FI*/}
  2096. /*FI*/}
  2097. /*FI*/R=((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0);
  2098. return R;
  2099. }
  2100. T0 * rT153start_position(T153 *C){
  2101. T0 * R=NULL;
  2102. R=XrT67start_position(rT153first_name(C));
  2103. return R;
  2104. }
  2105.